package com.easyExcel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.json.JsonUtil;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class ExcelReadListener extends AnalysisEventListener<Map<Integer, String>> {

    /**
     * 表头数据（存储所有的表头数据）
     */
    private final List<Map<Integer, String>> headList = new ArrayList<>();
    /**
     * 数据体
     */
    private final List<Map<Integer, String>> dataList = new ArrayList<>();

    /**
     * 默认invoke从excel第二行开始读数据，第一行为中文表头，第二行为字段名称
     * 如只需要从第一行读取，请使用invokeHeadMap方法
     */

    @Override
    public void invokeHeadMap(Map<Integer, String> data, AnalysisContext analysisContext) {
        headList.add(data);
        System.out.println(JsonUtil.toJson(data));
    }

    @Override
    public void invoke(Map<Integer, String> data, AnalysisContext analysisContext) {
        dataList.add(data);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    }

    public List<Map<Integer, String>> getHeadList() {
        return headList;
    }

    public List<Map<Integer, String>> getDataList() {
        return dataList;
    }

}
